맨위로가기

비디오 게임 프로그래머

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

비디오 게임 프로그래머는 비디오 게임의 운영을 위한 프로그램을 개발하고 작성하는 역할을 담당한다. 1970년대부터 1980년대 중반까지는 게임 프로그래머가 디자이너와 아티스트의 역할을 겸했지만, 기술 발전과 분업화로 인해 전문 분야가 세분화되었다. 게임 엔진, 물리, 그래픽스, 인공지능, 사운드, 게임플레이, UI, 입력, 네트워크, 게임 도구, 포팅, 기술, 리드 프로그래머 등 다양한 분야의 전문가가 존재하며, C++, C, 어셈블리 언어, 스크립트 언어 등을 사용한다. 게임 프로그래머는 학사 학위가 요구되며, IT 및 CT 분야로의 취업이 가능하고, 웹 프로그래머, 소프트웨어 개발자 등으로 전직할 수 있다.

더 읽어볼만한 페이지

  • 비디오 게임 프로그래머 - 마르쿠스 페르손
    스웨덴의 비디오 게임 디자이너이자 프로그래머인 마르쿠스 알렉세이 페르손은 《마인크래프트》의 제작자로 유명하며, 7세에 프로그래밍을 시작하여 독립 게임을 제작, 2009년 마인크래프트 알파 버전을 출시하여 성공을 거두고 2010년 모장을 설립했으나 2014년 마이크로소프트에 매각 후 회사를 떠났다.
  • 비디오 게임 프로그래머 - 제이드 레이먼드
    제이드 레이먼드는 캐나다의 비디오 게임 프로듀서이자 기업 임원으로, 유비소프트에서 《어쌔신 크리드》 시리즈 개발을 주도하며 명성을 얻었으며, EA, 구글을 거쳐 현재는 헤이븐 스튜디오를 설립하여 소니와 협력하여 새로운 게임 개발에 매진하고 있다.
비디오 게임 프로그래머
직업 개요
직업 분야소프트웨어 개발, 비디오 게임 개발
역할프로그래밍, 소프트웨어 공학
관련 직업게임 디자이너, 게임 아티스트, 게임 프로듀서, 소프트웨어 엔지니어
상세 정보
설명비디오 게임 개발자는 비디오 게임을 만들기 위해 코드를 작성하는 소프트웨어 개발자이다.
기술C++
C#
Java
Python
어셈블리어
DirectX
OpenGL
Unity
언리얼 엔진
업무게임 엔진 개발
게임플레이 로직 구현
인공지능 개발
그래픽스 프로그래밍
사운드 프로그래밍
네트워크 프로그래밍
게임 툴 개발
플랫폼 최적화
필요 역량뛰어난 프로그래밍 능력
수학 및 알고리즘 이해
창의적인 문제 해결 능력
팀워크
커뮤니케이션 능력
게임 개발 프로세스 이해
한국어 문서 정보
다른 이름게임 프로그래머
관련 직군게임 기획자
게임 그래픽 디자이너
게임 프로듀서
소프트웨어 개발자
기술적 측면
사용 언어C++
C#
Java
어셈블리어
사용 APIDirectX
OpenGL
사용 엔진Unity
언리얼 엔진

2. 역사

애플 II 시리즈는 초창기 홈 컴퓨터 시대에 인기 있는 비디오 게임 플랫폼이었다. 이후 시스템보다 성능이 떨어졌음에도 불구하고 1990년대 초반까지 인기를 유지했다.


비디오 게임 초창기(1970년대 초반~1980년대 중반)에는 게임 프로그래머가 디자이너와 아티스트의 역할도 겸했다. 이후, 전문적인 아케이드 게임 하드웨어와 홈 컴퓨터 시스템의 성능이 향상되면서 게임 개발자들은 더 깊이 있는 스토리라인을 개발하고 고해상도 및 풀 컬러 그래픽, 물리학, 고급 인공 지능, 디지털 사운드와 같은 기능을 포함할 수 있게 되었다. 기술 발전으로 현대 게임은 전문 그래픽 아티스트가 개발한 자산을 사용하여 3D 컴퓨터 그래픽과 풀 모션 비디오를 구현하게 되었다.

게임에 더 많은 깊이와 자산을 추가하려는 욕구는 분업을 필요로 했다. 처음에는 아트 제작이 전임 아티스트에게 맡겨졌고, 이후 게임 프로그래밍은 게임 디자인과 별개의 분야가 되었다.

2. 1. 초창기 게임 프로그래밍 (1970년대 초반 ~ 1980년대 중반)



비디오 게임 초창기(1970년대 초반부터 1980년대 중반까지)에는 게임 프로그래머가 디자이너와 아티스트의 역할도 겸했다. 이는 초창기 컴퓨터의 성능이 매우 제한적이어서 각 기능별로 전문 인력을 배치할 필요가 없었기 때문이다. 게임의 컨셉은 대체로 가벼웠고, 게임은 한 번에 몇 분 동안만 플레이하도록 만들어졌지만, 더 중요한 것은 컴퓨터의 제한된 성능으로 인해 아트 콘텐츠와 게임 플레이의 다양성이 제약되었다는 점이다.[1]

2. 2. 게임 프로그래밍의 전문화 (1980년대 중반 이후)



전문적인 아케이드 게임 하드웨어와 홈 컴퓨터 시스템의 성능 향상으로 게임 개발자들은 더 깊이 있는 스토리라인을 개발하고 고해상도 및 풀 컬러 그래픽, 물리학, 고급 인공 지능, 디지털 사운드와 같은 기능을 포함할 수 있게 되었다. 기술 발전으로 현대 게임은 전문 그래픽 아티스트가 개발한 자산을 사용하여 3D 컴퓨터 그래픽과 풀 모션 비디오를 구현한다. "프로그래머 아트"라는 경멸적인 용어는 초창기 비디오 게임의 전형적인 밝은 색상과 블록 디자인을 의미하게 되었다.

게임에 더 많은 깊이와 자산을 추가하려는 욕구는 분업을 필요로 했다. 처음에는 아트 제작이 전임 아티스트에게 맡겨졌고, 이후 게임 프로그래밍은 게임 디자인과 별개의 분야가 되었다. 현재는 퍼즐 게임인 ''비주얼드''처럼 단 하나의 전임 프로그래머만 필요한 게임도 있지만, 대부분의 게임 개발자(아티스트, 프로그래머, 게임 프로듀서)는 현대 게임의 최종 디자인에 어느 정도 발언권을 가진다.

3. 전문 분야

현대 비디오 게임은 고급 물리, 인공지능, 3D 그래픽, 디지털 사운드, 오리지널 악보, 복잡한 전략 등 다양한 요소를 포함하며, 마우스, 키보드, 게임패드, 조이스틱 등 여러 입력 장치를 사용하고, 인터넷이나 LAN을 통해 다른 사람과 대결할 수 있다. 이러한 게임의 각 측면은 한 명 또는 여러 명의 프로그래머가 담당하며, 전문 분야는 다음과 같이 나뉜다.


  • 게임 엔진 프로그래머: 게임의 기본 엔진(물리, 그래픽 등)을 제작하고, 상용 또는 오픈 소스 게임 엔진을 특정 게임에 맞게 수정한다.
  • 물리 엔진 프로그래머: 게임에 적용될 물리 엔진을 개발하고, 실제 물리 현상의 일부를 시뮬레이션하거나, 게임 플레이를 위해 비현실적인 물리 현상을 구현한다.
  • 그래픽스 엔진 프로그래머: 3D 그래픽스 렌더러를 개발 및 수정하고, 벡터, 행렬, 사원수, 선형대수 등 고급 수학 개념에 대한 이해가 필요하다.
  • 인공지능(AI) 프로그래머: 적과 상대방의 지능을 시뮬레이션하기 위한 로직을 개발하고, 길 찾기, 전략, 적 전술 시스템 등을 프로그래밍한다.
  • 사운드 프로그래머: 게임의 사운드 엔진을 구축 및 개선하고, 디지털 신호 처리에 대한 지식이 필요할 수 있으며, 사운드 디자이너를 위한 스크립팅 도구를 만들기도 한다.
  • 게임플레이 프로그래머: 게임의 전략, 게임 메커니즘, 로직 구현, 게임의 "느낌"에 중점을 둔다.
  • 스크립터: 스크립트 언어를 사용하여 시네마틱 이벤트, 적의 행동, 게임 목표 등을 처리하며, 주로 게임 디자이너가 이 역할을 맡는다.
  • UI 프로그래머: 게임의 사용자 인터페이스(UI) 프로그래밍을 전문으로 하며, 여러 프로젝트에서 사용할 수 있는 라이브러리를 개발하기도 한다.
  • 입력 프로그래머: 입력 장치(키보드, 마우스, 조이스틱 등)가 게임에 영향을 미치는 코드를 작성한다.
  • 네트워크 프로그래머: LAN 또는 인터넷을 통해 플레이어들이 연결되어 경쟁하거나 협력할 수 있도록 하는 코드를 작성한다.
  • 게임 도구 프로그래머: 게임 개발을 지원하기 위한 맞춤형 도구(스크립트 컴파일, 아트 에셋 가져오기/변환, 레벨 편집 등)를 제작한다.
  • 포팅 프로그래머: 한 플랫폼에서 다른 플랫폼으로 게임을 이식하는 작업을 전문으로 한다.
  • 기술 프로그래머: R&D를 전담하며, 알고리즘 구현, 어셈블리 최적화, 메모리 문제 해결 등 기술적으로 매우 까다로운 업무를 수행한다.
  • 제너럴리스트: 소규모 팀에서 다양한 역할을 수행하는 프로그래머이다.
  • 리드 게임 프로그래머: 게임의 모든 프로그래밍을 책임지며, 게임의 다양한 하위 모듈이 제대로 구현되고 있는지 확인한다.

3. 1. 게임 엔진 프로그래머

게임 엔진 프로그래머는 시뮬레이션된 물리 및 그래픽 분야를 포함하여 게임의 기본 엔진을 제작한다.[4] 점점 더 많은 비디오 게임이 상업용, 오픈 소스 또는 무료로 제공되는 기존의 게임 엔진을 사용한다. 이러한 엔진은 특정 게임에 맞게 자주 사용자 정의되며, 이러한 수정 사항은 게임 엔진 프로그래머가 처리한다.

3. 2. 물리 엔진 프로그래머

비디오 게임의 물리 프로그래머는 게임에 적용될 물리 엔진을 개발한다.[5] 일반적으로 게임은 실제 세계의 물리 현상의 일부 측면만 시뮬레이션한다. 예를 들어, 우주 게임은 시뮬레이션된 중력이 필요할 수 있지만, 물의 점성을 시뮬레이션할 필요는 없을 것이다.

처리 주기가 항상 중요하기 때문에 물리 프로그래머는 계산 비용이 적게 들지만, 해당 게임에 "충분히 괜찮아" 보이는 "단축키"를 사용할 수 있다. 다른 경우에는, 더 쉬운 게임 플레이나 극적인 효과를 위해 비현실적인 물리 현상이 사용된다. 때로는 특정 하위 집합의 상황이 지정되고 그러한 상황의 물리적 결과가 어떤 종류의 기록에 저장되며 런타임에는 전혀 계산되지 않는다.

일부 물리 프로그래머는 역기구학과 게임 캐릭터에 귀속된 다른 움직임과 같은 어려운 작업에 몰두하기도 하지만, 복잡한 계산으로 CPU에 과부하가 걸리지 않도록 점점 더 이러한 움직임은 모션 캡처 라이브러리를 통해 할당된다.

3. 3. 그래픽스 엔진 프로그래머

과거에는 이 직함이 일반적으로 특화된 블리터 알고리즘과 영리한 최적화를 개발하는 2D 그래픽스 프로그래머에게 주어졌다. 그러나 오늘날에는 복잡한 3D 그래픽스 렌더러를 개발하고 수정하는 데 특화된 프로그래머에게 거의 독점적으로 적용된다. 새로운 세대의 휴대폰과 휴대용 게임기용 게임을 개발하기 위해 2D 그래픽스 기술이 최근 다시 유용해졌다.

3D 그래픽스 프로그래머는 벡터 및 행렬 수학, 사원수 및 선형대수와 같은 고급 수학 개념을 확실히 이해해야 한다.

3. 4. 인공지능 프로그래머

AI 프로그래머는 적과 상대방의 지능을 시뮬레이션하기 위한 로직을 개발한다.[6] 최근에는 다른 분야를 전문으로 하는 프로그래머들이 이 작업을 구현하면서 전문 분야로 발전했다. AI 프로그래머는 길 찾기, 전략, 적 전술 시스템 등을 프로그래밍한다. 이는 게임 프로그래밍에서 가장 어려운 측면 중 하나이며, 그 정교함이 빠르게 발전하고 있다. 현대 게임에서는 프로그래밍 인력의 약 10~20%를 AI에 할당한다.[7]

시뮬레이션 게임인 ''문명 III''나 롤플레잉 비디오 게임인 ''엘더스크롤 4: 오블리비언''과 같은 일부 게임은 AI를 많이 사용하지만, 퍼즐 게임과 같은 게임은 AI를 거의 사용하지 않거나 전혀 사용하지 않는다. 많은 게임 개발자가 스크립트를 통해 게임에 자체 AI를 프로그래밍할 수 있는 프로그래밍 언어를 만들었다. 이러한 언어는 일반적으로 게임 구현에 사용되는 언어보다 기술적이지 않으며, 게임 또는 레벨 디자이너가 게임 세계를 구현하는 데 사용되기도 한다. 많은 스튜디오에서 플레이어가 게임 스크립트를 사용할 수 있도록 허용하며, 이는 제3자 모드 개발자들이 널리 사용한다.

게임 프로그래밍에 사용되는 AI 기술은 학문적 AI 프로그래밍 및 연구와는 구분되어야 한다. 두 분야 모두 서로의 기술을 차용하기도 하지만, 예외적인 경우를 제외하면 일반적으로 별개의 분야로 간주된다. 예를 들어, 라이언헤드 스튜디오의 2001년 게임 ''블랙 & 화이트''는 게임 플레이 중 학습을 통해 행동을 모델링하는 사용자 제어 크리처에 대한 독특한 AI 접근 방식을 제공한다.[8] 최근 몇 년 동안 유망한 AI 연구 분야와 게임 AI 프로그래밍을 융합하려는 노력이 증가하고 있다.[9][10][11][12]

3. 5. 사운드 프로그래머

대부분의 게임은 오디오를 사용하며, 많은 게임이 완전한 음악 점수를 가지고 있다. 컴퓨터 오디오 게임은 그래픽을 완전히 배제하고 사운드를 주요 피드백 메커니즘으로 사용한다.[13]

많은 게임은 3D 위치 기반 사운드와 같은 고급 기술을 사용하므로 오디오 프로그래밍은 쉬운 문제가 아니다. 이러한 게임에서 한두 명의 프로그래머가 게임의 사운드 엔진을 구축하고 개선하는 데 모든 시간을 할애할 수 있으며, 사운드 프로그래머는 디지털 신호 처리에 대한 교육을 받거나 정식 배경을 가지고 있을 수 있다.

사운드 디자이너가 사용할 수 있도록 스크립팅 도구가 사운드 프로그래머에 의해 생성되거나 유지 관리되는 경우가 많다. 이러한 도구를 사용하면 디자이너는 사운드를 캐릭터, 액션, 객체 및 이벤트와 연관시키는 동시에 게임 환경(레벨 또는 영역)에 음악 또는 분위기 있는 사운드를 할당하고 반향과 같은 환경 변수를 설정할 수 있다.

3. 6. 게임플레이 프로그래머

모든 프로그래머가 게임이 제공하는 콘텐츠와 경험에 기여하지만, 게임플레이 프로그래머는 게임의 전략, 게임 메커니즘과 로직 구현, 그리고 게임의 "느낌"에 더 중점을 둔다. 게임플레이 프로그래머가 하는 일은 게임마다 다르며, 그래픽이나 사운드와 같은 게임 개발의 보다 전문적인 영역에도 관여한다.[1]

게임플레이 프로그래머는 전략 테이블을 구현하거나, 입력 코드를 조정하거나, 게임을 변경하는 다른 요소를 조정할 수 있다. 이러한 측면 중 많은 부분은 해당 분야를 전문으로 하는 프로그래머가 변경할 수 있다. (예를 들어, 전략 테이블은 인공지능 프로그래머가 구현할 수 있다).[1]

3. 7. 스크립터

오늘날에는 핵심 게임 엔진이 게임플레이 프로그래밍과 분리되는 경우가 더 많다. 게임 엔진은 그래픽 렌더링, 사운드, 물리 등을 처리하는 반면, 스크립트 언어는 시네마틱 이벤트, 적의 행동, 게임 목표 등과 같은 것들을 처리한다. 대규모 게임 프로젝트는 이러한 종류의 게임 콘텐츠를 구현하기 위해 스크립터 팀을 갖추기도 한다.

스크립터는 보통 게임 디자이너이기도 하다. C++를 능숙하게 다루는 게임 디자이너를 찾는 것보다, 스크립트 언어를 배울 수 있는 게임 디자이너를 찾는 것이 더 쉬운 경우가 많다.

3. 8. UI 프로그래머

UI 프로그래머는 게임의 사용자 인터페이스(UI) 프로그래밍을 전문으로 한다.[14] 일부 게임은 맞춤형 사용자 인터페이스를 갖지만, UI 프로그래머는 여러 프로젝트에서 사용할 수 있는 라이브러리를 개발할 가능성이 더 높다. 대부분의 UI는 2D로 보이지만, 최신 UI는 일반적으로 게임의 나머지 부분과 동일한 3D 기술을 사용하므로 이 역할에는 3D 수학 및 시스템에 대한 지식이 도움이 된다. 고급 UI 시스템은 스크립팅 및 제어 기능에 대한 투명도, 애니메이션 또는 파티클 효과와 같은 특수 효과를 허용할 수 있다.

3. 9. 입력 프로그래머

키보드, 마우스, 조이스틱과 같은 입력 장치가 게임에 어떻게 영향을 미치는지 지정하는 코드를 작성한다. 이러한 루틴은 일반적으로 제작 초기에 개발되며 개발 기간 동안 지속적으로 조정된다. 보통 한 명의 프로그래머가 이러한 시스템 개발에 전적으로 시간을 할애할 필요는 없다. Wii 리모컨이나 키넥트와 같은 장치를 활용하는 실시간 모션 제어 게임은 매우 복잡하고 낮은 대기 시간의 입력 시스템이 필요할 수 있지만, ''히어로즈 오브 마이트 앤 매직''과 같은 마우스 기반 턴제 전략 게임의 HID 요구 사항은 구현이 훨씬 간단하다.[1]

3. 10. 네트워크 프로그래머

네트워크 프로그래머는 LAN 또는 인터넷을 통해 플레이어들이 연결되어 경쟁하거나 협력할 수 있도록 하는 코드를 작성한다.[15] 이들은 네트워크 지연 시간, 패킷 압축, 연결 끊김 등 여러 문제점을 고려해야 한다. 멀티플레이어 기능은 게임 제작 기간 전체에 걸쳐 개발되며, 다른 엔진 시스템도 네트워킹을 염두에 두고 설계해야 한다. 하지만 네트워크 시스템 개발은 마지막 몇 달까지 미뤄지는 경우가 많아 어려움이 가중된다.

일부 게임은 관리 부족, 디자인의 선견지명 부족, 확장성 문제 등으로 출시 몇 달 전에 온라인 기능이 삭제되기도 한다. PS3용 ''버추어 파이터 5''가 이러한 예시 중 하나이다.[16]

3. 11. 게임 도구 프로그래머

게임 도구 프로그래머는 게임 개발을 지원하기 위해 맞춤형 도구를 제작한다.[17] 게임 개발 도구는 스크립트 컴파일, 아트 에셋 가져오기 또는 변환, 레벨 편집과 같은 기능을 포함하는 경우가 많다. 일부 도구는 COTS 제품(예: IDE 또는 그래픽 편집기)일 수 있지만, 도구 프로그래머는 상용 제품에서는 사용할 수 없는, 특정 게임에 맞게 조정된 특별한 기능을 가진 도구를 만든다. 예를 들어 어드벤처 게임 개발자는 분기형 스토리 대화를 위한 편집기가 필요할 수 있으며, 스포츠 게임 개발자는 선수 및 팀 통계를 관리하기 위해 자체 편집기를 사용할 수 있다. 이러한 도구는 일반적으로 게임을 구매하는 소비자에게는 제공되지 않는다.

3. 12. 포팅 프로그래머

포팅은 한 플랫폼에서 다른 플랫폼으로 게임을 이식하는 것으로, 게임 개발자에게 항상 중요한 활동이다. 일부 프로그래머는 이 활동을 전문으로 하며, 한 운영 체제에서 다른 운영 체제에서 작동하도록 코드를 변환한다. 때로는 프로그래머가 하나의 운영 체제뿐만 아니라 휴대 전화와 같은 다양한 장치에서 애플리케이션이 작동하도록 해야 한다. 그러나 "포팅"은 소스 코드 변환이 무의미해지도록 독점적인 프로그래밍 언어, 도구 또는 하드웨어로 인해 전체 게임을 처음부터 다시 작성하는 것을 포함할 수 있다.

포팅 프로그래머는 원본 및 대상 운영 체제와 언어(예: C++로 원래 작성된 게임을 자바로 변환)에 익숙해야 하며, 아트워크, 사운드와 같은 에셋을 변환하거나 메모리 용량이 적은 전화에 맞게 코드를 다시 작성해야 한다. 또한 이 프로그래머는 제대로 문서화되지 않은 버그가 있는 언어 구현을 피하고, 코드 리팩토링을 수행하고, 여러 코드 분기를 감독하고, 다양한 화면 크기에 맞게 확장할 수 있도록 코드를 다시 작성하고, 특수 연산자 지침을 구현해야 할 수 있다. 또한 게임의 원래 릴리스에서 발견되지 않은 버그를 수정해야 할 수도 있다.

3. 13. 기술 프로그래머

기술 프로그래머는 R&D만을 전담하는 특정 부서를 갖춘 대규모 개발 스튜디오에서 더 많이 발견될 수 있다. 프로그래밍 팀의 다른 구성원들과 달리, 기술 프로그래머는 일반적으로 특정 프로젝트나 개발 유형에 장기간 얽매이지 않으며, 게임 프로듀서가 아닌 CTO 또는 부서장에게 직접 보고한다. 직함이 의미하는 바와 같이, 이 직책은 기술적인 측면에서 매우 까다로우며 대상 플랫폼 하드웨어에 대한 깊이 있는 지식이 필요하다. 업무는 연구 논문에 설명된 알고리즘의 실제 구현, 매우 낮은 수준의 어셈블리 최적화, 프로젝트 후반 단계에서 메모리 요구 사항 및 캐싱 문제와 관련된 어려운 문제를 해결하는 능력 등 광범위한 주제를 다룬다. 이 직책과 다른 직책, 특히 그래픽스 프로그래머 간에는 상당한 중복이 있다.

3. 14. 제너럴리스트

소규모 팀에서는 한 명 이상의 프로그래머가 필요에 따라 다양한 역할을 수행하는 '제너럴리스트'로 묘사되는 경우가 많다. 제너럴리스트는 종종 버그를 추적하고 이를 수정하기 위해 어떤 하위 시스템 전문 지식이 필요한지 파악하는 업무를 수행한다.[1]

3. 15. 리드 게임 프로그래머

리드 프로그래머는 게임의 모든 프로그래밍을 책임진다. 게임의 다양한 하위 모듈이 제대로 구현되고 있는지 확인하고, 프로그래밍 관점에서 개발 상황을 추적하는 역할을 맡는다. 이 직책은 보통 수년간의 게임 프로그래밍 경험을 쌓은 후 다른 분야에서 전환하여 맡게 된다.

리드 프로그래머는 회의에 참석하고 클라이언트 또는 게임의 다른 리더들과 소통해야 하기 때문에, 프로젝트의 다른 프로그래머들보다 코드를 작성할 시간이 적다. 그러나 리드 프로그래머는 여전히 최소한의 시간 동안 프로그래밍을 해야 하며, 게임의 대부분의 기술 분야에 정통해야 한다. 기술 디렉터와 리드 프로그래머의 역할에는 공통점이 많아, 종종 한 사람이 두 직무를 모두 수행하기도 한다.

4. 플랫폼

게임 프로그래머는 Wii U윈도우와 같이 특정 플랫폼을 전문적으로 다룰 수 있다. 따라서 프로그래머는 특정 게임 프로그래밍 분야뿐만 아니라 특정 플랫폼에서의 개발을 전문으로 할 수도 있다. 예를 들어, 한 게임 프로그래머의 직함은 "플레이스테이션 3 3D 그래픽 프로그래머"와 같을 수 있다. 인공지능(AI)과 같은 일부 분야는 다양한 플랫폼으로 이전될 수 있으며 특정 시스템에 맞출 필요가 없다. 또한 3D 그래픽 프로그래밍 개념, 음향 엔지니어링 및 사용자 인터페이스 디자인과 같은 일반적인 게임 개발 원칙은 플랫폼 간에 이전 가능하다.

5. 교육

대부분의 게임 프로그래머 채용 공고에서는 학사 학위(수학, 물리학, 컴퓨터 과학 또는 "동등한 경험")를 요구한다.[1] 점점 더 많은 대학교에서 게임 프로그래밍 관련 강좌와 학위를 제공하고 있으며,[2] 이러한 학위는 컴퓨터 과학소프트웨어 공학 학위와 상당 부분 겹친다.[2]

2년제 및 4년제 대학 졸업 이상의 전산 관련 전공 학력이 선호되지만, 프로그래밍 작업 실력이 충분한 경우 전공에 특별한 제한은 없다.[1] Visual Tool, C언어 능숙자, 컴퓨터 그래픽 애니메이션 개발자나 실무 경력 2~3년 차가 유리하며, Window, 포토샵, 프리미어, 프로그래밍 언어(C/C++ 등), 자료 구조 등에 대한 지식이 요구된다.[1] 게임 스쿨이나 게임 아카데미 수료자가 유리하고, 게임을 좋아하며 프로그래밍 언어를 잘 다루어야 한다.[1]

6. 직업 경로 및 전망 (대한민국)

대한민국의 게임프로그래머는 IT 및 CT 분야에 바로 취업할 수 있으며, 경력과 실력에 따라 P2P 및 클라이언트 분야의 업무를 담당한다. 리드 프로그래머 이상의 능력을 갖추면 웹 프로그래머, 소프트웨어 개발자, 모바일 게임 프로그래머 등으로 전직하기 쉽다.

이 외에도 소프트웨어 개발, 프로젝트 매니저, 게임 기획자, 웹 마스터 등으로 전직할 수 있다.

6. 1. 준비 방법 (대한민국)

2년제 및 4년제 대학 졸업 이상의 전산 관련 전공 학력이 선호되지만, 프로그래밍 실력이 충분하면 전공에 특별한 제한은 없다. Visual Tool, C 언어 능숙자, 컴퓨터 그래픽 애니메이션 개발자나 실무 경력 2~3년 차가 유리하며 윈도우, 포토샵, 프리미어, 프로그래밍 언어 (C/C++ 등), 자료 구조 등에 대한 지식이 요구된다. 게임 스쿨이나 게임 아카데미 수료자가 유리하고, 게임을 좋아하며 프로그래밍 언어를 잘 다루어야 한다.

6. 2. 활동 분야 (대한민국)

비디오 게임 프로그래머는 게임 제작 업체, 소프트웨어 개발 업체, 영화사, 광고 제작 업체, 출판사, 애니메이션 제작 업체 등 다양한 분야에서 활동한다. 컴퓨터 활용 분야에서는 게임 프로그램 및 솔루션 개발 등을 담당한다.[1] 주요 업무는 다음과 같다.[1]

  • 캐릭터 완성 및 게임 에디터 제작, 콘텐츠 및 이미지 정렬
  • 음성, 사운드, 동영상, 애니메이션 등 복합 응용 기술 제작

6. 3. 임금 (대한민국)

3년 차 연봉은 평균 260만~280만이고, 초임은 150만~180만이다. (2024년 이후 물가 상승률을 고려하여 업데이트 필요)

7. 사용 언어 및 도구

대부분의 상업용 컴퓨터 및 비디오 게임은 주로 C++(C++), C, 그리고 일부 어셈블리 언어로 작성된다.[1] 특히 복잡한 상호작용적 게임 플레이 메커니즘을 가진 많은 게임들은 하드웨어의 한계까지 자원을 사용하므로, 이러한 게임들이 허용 가능한 프레임 속도로 실행되기 위해서는 고도로 최적화된 코드가 필요하다. 이 때문에 컴파일된 코드는 일반적으로 시각적 렌더링 및 물리 계산과 같은 성능이 중요한 구성 요소에 사용된다. 거의 모든 PC 게임은 DirectX, OpenGL API 또는 하드웨어 장치와 인터페이스하기 위한 일부 래퍼 라이브러리를 사용한다.

스크립트 언어루비, Lua 및 파이썬 등은 게임 플레이, 특히 AI와 같은 콘텐츠 생성에 사용된다.[1] 스크립트는 일반적으로 로드 시(게임 또는 레벨이 주 메모리에 로드될 때) 파싱된 다음 런타임 시(논리 분기 또는 기타 메커니즘을 통해) 실행되며, 인터프리터에 의해 실행되지 않는데, 이는 실행 속도를 훨씬 느리게 만들기 때문이다. 스크립트는 종종 AI 및 상위 레벨 게임 로직에 선택적으로 사용되는 경향이 있다. 일부 게임은 스크립트에 대한 의존도가 높도록 설계되었으며, 일부 스크립트는 게임 실행 전에 바이너리 형식으로 컴파일된다. 개발의 최적화 단계에서 일부 스크립트 함수는 종종 컴파일된 언어로 다시 작성된다.

자바는 많은 웹 브라우저 기반 게임에 사용되는데, 이는 크로스 플랫폼이고, 일반적으로 사용자가 설치할 필요가 없으며, 다운로드된 실행 프로그램에 비해 컴퓨터 보안 위험이 적기 때문이다.[1] 자바는 또한 휴대폰 기반 게임에서 인기 있는 언어이다. Adobe Flash는 액션스크립트 언어를 사용하며, 자바스크립트는 브라우저 기반 게임을 위한 인기 있는 개발 도구이다.

게임의 크기와 복잡성이 증가함에 따라 미들웨어는 업계에서 점점 더 인기를 얻고 있다.[1] 미들웨어는 표준 하위 레벨 APIDirectXOpenGL보다 더 크고 높은 수준의 기능과 더 큰 기능 세트(예: 골격 애니메이션)를 제공한다. 더 복잡한 기술을 제공하는 것 외에도, 일부 미들웨어는 플랫폼 독립적이 되기 위한 합리적인 시도를 하며, 예를 들어 Microsoft Windows에서 PS4로의 일반적인 변환을 훨씬 쉽게 만든다. 본질적으로 미들웨어는 개발 주기에서 가능한 한 많은 중복을 제거하는 것을 목표로 하여 (예: 스튜디오가 제작하는 각 게임에 대한 새로운 애니메이션 시스템 작성) 프로그래머가 새로운 콘텐츠에 집중할 수 있도록 한다.

다른 도구도 게임 개발자에게 필수적이다.[1] 2D 및 3D 패키지(예: 블렌더, GIMP, 포토샵, 마야 또는 3ds 맥스)를 사용하면 프로그래머가 아티스트 또는 기타 제작 직원이 생성한 자산을 보고 수정할 수 있다. 소스 제어 시스템은 소스 코드를 안전하게 유지하고 병합을 최적화한다. IDE디버거 (예: 비주얼 스튜디오)를 통해 코드를 작성하고 버그를 추적하는 고통을 덜어준다.

참조

[1] 문서 Bates 2004
[2] 문서 Moore, Novak 2010
[3] 문서 Moore, Novak 2010
[4] 문서 Moore, Novak 2010
[5] 문서 Moore, Novak 2010
[6] 문서 Moore, Novak 2010
[7] 웹사이트 Number of Dedicated AI Programmers on A Game Development Team https://web.archive.[...] 2008-02-26
[8] 문서 Evans 2002
[9] 웹사이트 IEEE Symposium on Computational Intelligence and Games http://www.ieee-cig.[...] 2010-03-26
[10] 웹사이트 Artificial Intelligence and Games Research Network https://web.archive.[...] 2010-03-26
[11] 웹사이트 The University of Alberta GAMES Group http://webdocs.cs.ua[...] 2010-03-26
[12] 웹사이트 Games & Puzzles https://web.archive.[...] 2010-03-26
[13] 문서 Moore, Novak 2010
[14] 문서 Moore, Novak 2010
[15] 문서 Moore, Novak 2010
[16] 웹사이트 TVG: AM2: Virtua Fighter 5 PS3 Could Be Updated For Online News http://www.totalvide[...]
[17] 문서 Moore, Novak 2010
[18] 웹사이트 Top Gaming Studios, Schools & Salaries Big Fish Games 2013-07
[19] 간행물 9th Annual Salary Survey United Business Media 2010-04
[20] 웹사이트 The STEM Crisis is a Myth https://spectrum.iee[...] 2013-08-30



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com